package com.mdxx.patrol.system.service;



import com.mdxx.patrol.system.param.*;
import com.mdxx.patrol.system.vo.RoleEditPermissionsVo;
import com.mdxx.patrol.system.vo.RoleLookPermissionsVo;
import com.mdxx.patrol.system.vo.RoleQueryListVo;
import com.mdxx.patrol.system.vo.RoleQueryUsableAllVo;
import com.mdxx.common.CommonResult;
import com.mdxx.common.TableData;

import java.util.List;

/**
 * Created by MD-01 on 2017/5/17.
 */
public interface IRoleService {


    /**
     * 列表页面分页,条件查询角色列表
     */
    CommonResult<TableData<RoleQueryListVo>> queryList(RoleQueryListParam param);

    /**
     * 添加/修改角色
     */
    CommonResult<Void> save(RoleSaveParam param);

    /**
     * 设置角色的权限
     */
    CommonResult<Void> setPermission(RoleSetPermissionParam param);

    /**
     * 角色页面-查看角色权限
     */
    CommonResult<List<RoleLookPermissionsVo>> lookPermissions(RoleLookPermissionsParam param);

    /**
     * 角色页面--编辑权限树
     */
    CommonResult<List<RoleEditPermissionsVo>> editPermissions(RoleEditPermissionsParam param);

    /**
     * 删除角色
     */
    CommonResult<Void> toDel(RoleToDelParam param);

    /**
     * 获取所有可用的角色
     * @return
     */
    CommonResult<List<RoleQueryUsableAllVo>> queryUsableAll();


}
